package controller

import (
	"fmt"
	"poker/pb/proto/common"
	"poker/pb/proto/login"
	"poker/ws"

	"github.com/gogo/protobuf/proto"
	"github.com/smallnest/rpcx/log"
)

func Login(r *ws.Request) {
	req := &login.LoginReq{}
	res := &login.LoginRes{}

	// var user *model.User

	defer func() {
		res.Code = common.Code_OK
		res.UserInfo = &common.User{UID: 9527, Nickname: "testname"}
		if err := r.Send(res); err != nil {
			log.Errorf("login response failed, err: %v", err)
		}
	}()

	if err := proto.Unmarshal(r.ByteData, req); err != nil {
		log.Errorf("invalid login message, err: %v", err)
		res.Code = common.Code_Abnormal
		return
	}

	fmt.Printf("recieve remote login msg: %v", req)

	// 检查token有效性

	// 标记用户登录

	// 重置今日数据

	// 增加信誉分 （score 分值为当前被扣除的分数 不是剩余分数）

	// 检查当前开放的该用户可参与的活动

	// 检查用户道具是否有冗余

	// 检查用户票券是否冗余

	// 检查未读邮件个数

	// 检查未处理好友亲求个数

	// 活跃度 大师分

	// 获得到的点赞数

	//	检测是否需要添加线下道具的门票

	// 每日登录获取活跃度积分 参数： uid  积分类型  积分获取文字说明

	// 推送发送用户日志的消息

	// 记录用户登录次数，连续登录天数等

	// 数据上报 用户登录

	// 日志记录
	// newLog := new(model.LoginLogs)
	// newLog.UID = user.UID
	// newLog.CID = int64(r.Seq)
	// newLog.LoginTime = user.LoginTime
	// newLog.LastLoginTime = user.LastLoginTime
	// newLog.Platform = req.Platform
	// newLog.Channel = req.Channel
	// newLog.LoginIP = r.GetIP()
	// newLog.Device = req.Device
	// newLog.DeviceId = req.DeviceId
	// newLog.IsComeback = (user.LoginTime.Time().UnixMilli() - user.LastLoginTime.Time().UnixMilli()) >= 7*24*60*60*1000
}
